home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1999 March
/
EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso
/
earcd
/
devel
/
vbcc-68k-src
/
vlink
/
history
< prev
next >
Wrap
Text File
|
1999-01-01
|
11KB
|
221 lines
vlink history
=============
(ados/ehf): changes are relevant for AmigaDOS/EHF only
(elf): general ELF changes
(elf32ppc): changes are relevant for ELF32-PowerPC only
- 0.6d (13.02.99)
o (elf) The PowerUp ELF loader has its own constructor/destructor
functionality for .ctors and .dtors sections, so we have to
rename them to .ctor_/.dtor_ (elf32powerup executable only). The
contents can still be referenced by .ctors/.dtors, though.
- 0.6c (05.02.99)
o (elf) Elf32 supports vbcc's _INIT/_EXIT function, where constructor/
destructor function pointers will be placed into the .ctors and .dtors
sections. .ctors/.dtors are using the standard format, but compiler-
generated entries will not work - the linker has to create these sections.
If .ctors or .dtors is referenced, but no such section exists, the
linker will create an artificial absolute symbol with the value 0
instead.
o All targets use the standard format for constructor/destructor
sections, which means: first longword describes the number of pointers
or is -1 (vlink uses the latter one), when the init code has to deter-
mine the number itself. The last longword will always be a NULL pointer.
- 0.6b (16.01.99)
o Changed copyright.
o Compiles now under Irix 5.3.
- 0.6a (19.12.98)
o vlink should be prepared to support little-endian objects now. The
endianess of the whole linking procedure is determined when loading
the first object file. Consequently the following ones must use the same.
o Fixed some problems with constructor/destructor-type linker symbols in
small data mode. Although they were addressed base-relative, their
sections could not be coalesced with the small data section and their
offsets were never updated.
- 0.6 (24.10.98)
o The section offset for base-relative relocations was made target-
dependant. Consequently, -baseoff modifies the default setting for
the current output file format.
The following default offsets were defined:
amigaos/amigaehf: 0x7ffe, elf32ppcbe/elf32powerup: 0x7ff0.
o New target elf32powerup, which supports the PPC coprocessor boards
from Phase5. The format of elf32powerup executables is the same as
the format of elf32ppcbe relocatable objects, but no unknown symbols
are allowed and base relative relocations will be resolved.
o (elf): Linking with shared objects is supported, but they still cannot
be created by vlink.
o (elf): .sdata/.sbss and .sdata2/.sbss2 (EABI) will always be combined,
also in -multibase mode.
o (elf32ppc): _LinkerDB is no longer known to elf32ppcbe. It's an
elf32powerup-only symbol now.
o (elf32ppc): Linker symbols _SDA_BASE_ and _SDA2_BASE (EABI).
- 0.5f (08.10.98)
o (ados/ehf): The automatic constructor/destructor functions have to
begin with __INIT or __EXIT to avoid conflicts with ANSI-C identifiers.
- 0.5e (05.10.98)
o A target may create prioritized pointers or constants in a new
section. This feature is useful for buidling constructor/destructor
function pointer tables. Currently used by ados/ehf only.
o (ados/ehf): Global symbols beginning with _INIT or _EXIT will create an
entry into the constructor/destructor function pointer table.
These tables can be addressed by using the symbols __ctors and __dtors
(e.g. in the startup/cleanup code of a program).
The priority of these functions may be defined by specifying a number
behind the INIT/EXIT string. Example: _INIT_9_OpenLibs.
Otherwise their priority defaults to 0 and they will be positioned
in order of occurence.
- 0.5d (22.08.98)
o Faster memory allocation algorithm, using 256k chunks. Can be
activated by defining FASTALLOC.
o Directories are only scanned for shared objects, because of a possible
version extension. This is a great improvement under AmigaOS, because
the file system is not fast enough.
o When using the -dn option together with the previous two enhancements,
vlink is nearly 10(!) times faster than before, under AmigaOS.
- 0.5c (08.07.98)
o (ados/ehf): If the target is EHF and an undefined reference to a
symbol beginning with "@_" was detected, it will be automagically
generated by the linker, as long as a symbol without "@_" already
exists. The linker will create an artificial object unit with the
name of the referenced symbol (without "@_"), including a data section
called ".tocd", which reserves four bytes for the symbol pointer.
This nice feature allows the generation of @__name pointer symbols
in the TOC section on demand, which saves a lot of space.
- 0.5b (05.07.98)
o (elf32ppc): Implemented linker symbol _LinkerDB.
- 0.5a (28.06.98)
o Error 19 (symbol xxx (yyy) is already defined in...) was turned
into a warning.
o Option -w (suppress warnings) was missing in help text.
- 0.5 (27.06.98)
o Target specific linker symbol support. This feature is currently
only used by the AmigaDOS file format.
o (ados/ehf): Implemented linker symbols:
_DATA_BAS_, _DATA_LEN_, _BSS_LEN_, _LinkerDB, __BSSBAS, __BSSLEN,
__ctors, __dtors, __DATA_BAS, __DATA_LEN, __BSS_LEN, __RESIDENT.
o -v shows the default target.
- 0.4 (05.06.98)
o New linking rules. A lot more factors are now involved in the decision
whether two sections have to be coalesced or not:
- target-specific linking rules are checked first
- small-code option forces merging of all code sections
- small-data option forces merging of all data and bss sections
- relative references between two sections
- all sections which have base-relative references from other sections
must be merged (if not denied by -multibase)
- default linking rules: sections must have the same name and type
o (ados/ehf): target specific linking rules:
- unnamed sections are never merged, unless the small-code or small-data
option is given
- sections named _NOMERGE are absolutely never merged
- data and bss sections named __MERGED will be merged, warn about
code sections with this name (but merge them anyway)
o All targets which support it can now take advantage of code-bss and
data-bss sections. In this case only the initalized section contents
is stored in the file, although the section header contains the total
size. The operating system is responsible for clearing the unini-
tialized part after loading.
o Option -sc forces merging of all code sections in an executable.
o Option -sd forces merging of all data and bss sections in an executable.
o Option -multibase prevents auto-merging of sections, which are accessed
base-relative. This means the program uses more than one base register
for accessing small data.
- 0.3b (02.05.98)
o Some experimental code for target elf64alpha, but nothing usable now.
o There were still infinite loops, if an object comes without any section.
o (ados/ehf) A dummy code section will be created, if an output file
has no section at all.
- 0.3a (18.04.98)
o Updated and changed some help texts.
- 0.3 (17.04.98)
o First version, which reliably links ELF32-PowerPC-BigEndian relocatable
object files and library archives. The only ELF output format is
currently a relocatable object, which means only linking with -r works.
o Support for SystemV-style and BSD-style ".a"-archives.
o (elf32ppc) Resolving ADDR16_HA/HI/LO references to a relocatable
symbol didn't work (2 bytes of the next instructions were overwritten).
o Fixed the print routine for function names, in which an error occured.
It didn't work, if symbols had a known size. Additionally, it can
differentiate between 'no type', 'function' and 'object' now.
o Option -R directs vlink to generate short relocs, if the target format
allows this. It is for example supported by ELF and AmigaDos.
Restriction: -R is currently ignored for ados/ehf and I'm not sure if
the implementation is correct for elf32ppc, because "objdump --reloc"
crashes on encountering ".rel" sections. Don't use this option for now!
o Commented out some options in the help text, which are still not supported.
o Implemented full support for little endian file formats, although
vlink currently doesn't know about one (maybe ELF64-Alpha-LittleEndian
will be the first? :).
o (ados/ehf) Absolute local symbols for object files and absolute local
and global symbols for executable files are ignored.
o (elf) Unlike ados/ehf, ELF allows multiple definitions of local symbols.
- 0.2a (20.03.98)
o Option -F reads a list of input files from the specified file name.
File names are separated by blanks, tabs, newlines, etc., so a file
name which contains blanks has to be in quotes.
- 0.2 (07.03.98)
o First version, which successfully linked EHF objects for WarpOS
into working executables!
o Library units are no longer forced being the last object units
in an output file. They will be immediately inserted, if a
unit's symbol is referenced. This makes it possible to ensure
that the last object in the linker command line will also be the
last object unit in the resulting output file.
o Option -v displays the standard library path.
o Severe problems with base relative references, if the output file
is a relocatable object again:
Normal references were resolved, but they must remain relocatable.
External references were even completely corrupted, and overwrote
the following instruction.
o (ados/ehf) Number of hunks determined in HUNK_HEADER was wrong,
if resident library name is missing (which is always the case).
o (ados/ehf) HUNK_DREL32 will be treated as HUNK_RELOC32SHORT, if the
input file is executable.
o (ados/ehf) Unnamed sections of an executable will always get
different names, to avoid that they are linked together. This would
cause some strange effects, like wrong base relative offsets, mixed
PowerPC and M68k code, etc..
- 0.1c (02.03.98)
o Internal error (thousands of sections detected), because of an
uninititalized variable.
- 0.1b (28.02.98)
o Base relative relocations, with -baseoff=0x8000 (default)
didn't work.
- 0.1a (28.02.98)
o Usage of AllocMem() in dir.c is not recommendable, when considering
a PowerPC-port. Changed to malloc().
o Some minor fixes - missing proto types, etc.
o Modified help text in version.c
- 0.1 (27.02.98)
o First version that seems to link AmigaOS ADOS and EHF
objects and libraries. Many common features, like linking
sections together which have relative references, are
still missing. Also, PowerPC-ELF32 support is about to come.
- 0.0 (04.08.97)
o Project started on a beautiful summer-day at the North Sea
beach of Cuxhaven. :)